package com.freesky.biz.abchina.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

@Data
@TableName("tec_abchina_lifepay_bill")
public class LifepayBillEntity implements java.io.Serializable{
    private static final long serialVersionUID = 1L;
    // 主键
    private String id;

    // 基础时间信息
    private String tradeDate;        // yyyyMMdd
    private String tradeTime;        // HHmmss
    private String accountingDate;   // yyyyMMdd

    // 流水号信息
    private String paymentSerialNo;       // 农行缴费中心流水号
    private String ePayOrderNo;     // 商E付支付订单号
    private String transactionSerialNo; // 主机交易流水号

    private String paymentMerchantNo;   //缴费项目账号号
    // 退款信息
    private String refundSerialNo;          // 缴费中心退款流水号
    private String eRefundOrderNo;  // 商E付退款订单号

    // 交易主体信息
    private String paymentItemCode;     // 缴费项目编号
    private String paymentItemName;     // 缴费项目名称
    private String merchantCode;       // 商户代码
    private String merchantName;        // 商户名称
    private String userId;             // 用户ID

    // 金额信息
    private String paymentAmount;         // 支付金额
    private String discountAmount;        // 优惠金额
    private String refundAmount;          // 退款金额
    private String refundDiscountAmount;  // 优惠退款金额

    // 状态信息
    private String paymentStatus;       // 缴费状态
    private String refundStatus;        // 退款状态

    // 用户输入信息
    private String userInput1;
    private String userInput2;
    private String userInput3;
    private String userInput4;
    private String userInput5;

    // 收款账户信息
    private String payeeMerchantNo;           // 收款商户号
    private String payeeAccountNo;            // 收款账号
    private String splitAccountTemplateNo;    // 分账模板号

    // 付款信息
    private String payerAccountNo;     // 付款账号
    private String paymentChannel;     // 缴费渠道

    // 业务标识
    private String settlementMode;     // 清算模式
    private String subBillNo;          // 子账单编号
    private String subBillName;        // 子账单名称
    private PaymentRefundFlag payRefundFlag; // 收付标识

    private Date createTime;
    // 枚举类型定义
    public enum PaymentRefundFlag {
        PAY_SUCCESS,    // 缴费成功
        REFUND_SUCCESS // 退款成功
    }
}
